home *** CD-ROM | disk | FTP | other *** search
/ Developer CD Series 1994 November: Tool Chest / Dev.CD Nov 94.toast / Tool Chest / !Interfaces / Universal Interfaces 2.0a1 / PInterfaces / Lists.p < prev    next >
Encoding:
Text File  |  1994-07-17  |  7.7 KB  |  278 lines  |  [TEXT/MPS ]

  1. {
  2.      File:        Lists.p
  3.  
  4.      Copyright:    © 1984-1994 by Apple Computer, Inc.
  5.                  All rights reserved.
  6.  
  7.      Version:    Universal Interfaces 2.0a1.  ETO #15, MPW prerelease.  Sunday, July 17, 1994. 
  8.  
  9.      Bugs?:        If you find a problem with this file, send the file and version
  10.                  information (from above) and the problem description to:
  11.  
  12.                      Internet:    apple.bugs@applelink.apple.com
  13.                      AppleLink:    APPLE.BUGS
  14.  
  15. }
  16.  
  17. {$IFC UNDEFINED UsingIncludes}
  18. {$SETC UsingIncludes := 0}
  19. {$ENDC}
  20.  
  21. {$IFC NOT UsingIncludes}
  22.  UNIT Lists;
  23.  INTERFACE
  24. {$ENDC}
  25.  
  26. {$IFC UNDEFINED __LISTS__}
  27. {$SETC __LISTS__ := 1}
  28.  
  29. {$I+}
  30. {$SETC ListsIncludes := UsingIncludes}
  31. {$SETC UsingIncludes := 1}
  32.  
  33.  
  34. {$IFC UNDEFINED __TYPES__}
  35. {$I Types.p}
  36. {$ENDC}
  37. {    ConditionalMacros.p                                            }
  38.  
  39. {$IFC UNDEFINED __CONTROLS__}
  40. {$I Controls.p}
  41. {$ENDC}
  42. {    Quickdraw.p                                                    }
  43. {        MixedMode.p                                                }
  44. {        QuickdrawText.p                                            }
  45. {    Menus.p                                                        }
  46. {        Memory.p                                                }
  47.  
  48. {$PUSH}
  49. {$ALIGN MAC68K}
  50. {$LibExport+}
  51.  
  52. CONST
  53.     lDoVAutoscroll                = 2;
  54.     lDoHAutoscroll                = 1;
  55.     lOnlyOne                    = -128;
  56.     lExtendDrag                    = 64;
  57.     lNoDisjoint                    = 32;
  58.     lNoExtend                    = 16;
  59.     lNoRect                        = 8;
  60.     lUseSense                    = 4;
  61.     lNoNilHilite                = 2;
  62.     lInitMsg                    = 0;
  63.     lDrawMsg                    = 1;
  64.     lHiliteMsg                    = 2;
  65.     lCloseMsg                    = 3;
  66.  
  67.     
  68. TYPE
  69. Cell = Point;
  70.  
  71.     DataArray = PACKED ARRAY [0..32000] OF CHAR;
  72.  
  73.     DataPtr = ^DataArray;
  74.     DataHandle = ^DataPtr;
  75.  
  76.     ListSearchProcPtr = ProcPtr;  { FUNCTION ListSearch(aPtr: Ptr; bPtr: Ptr; aLen: INTEGER; bLen: INTEGER): INTEGER; }
  77.     ListSearchUPP = UniversalProcPtr;
  78.  
  79. CONST
  80.     uppListSearchProcInfo = $00002BE0; { FUNCTION (4 byte param, 4 byte param, 2 byte param, 2 byte param): 2 byte result; }
  81.  
  82. FUNCTION NewListSearchProc(userRoutine: ListSearchProcPtr): ListSearchUPP;
  83.     {$IFC NOT GENERATINGCFM }
  84.     INLINE $2E9F;
  85.     {$ENDC}
  86.  
  87. FUNCTION CallListSearchProc(aPtr: Ptr; bPtr: Ptr; aLen: INTEGER; bLen: INTEGER; userRoutine: ListSearchUPP): INTEGER;
  88.     {$IFC NOT GENERATINGCFM}
  89.     INLINE $205F, $4E90;
  90.     {$ENDC}
  91. TYPE
  92.     ListClickLoopProcPtr = ProcPtr;  { FUNCTION ListClickLoop: BOOLEAN; }
  93.     ListClickLoopUPP = UniversalProcPtr;
  94.  
  95. CONST
  96.     uppListClickLoopProcInfo = $00000011; { FUNCTION : 1 byte result; }
  97.  
  98. FUNCTION NewListClickLoopProc(userRoutine: ListClickLoopProcPtr): ListClickLoopUPP;
  99.     {$IFC NOT GENERATINGCFM }
  100.     INLINE $2E9F;
  101.     {$ENDC}
  102.  
  103. FUNCTION CallListClickLoopProc(userRoutine: ListClickLoopUPP): BOOLEAN;
  104.     {$IFC NOT GENERATINGCFM}
  105.     INLINE $205F, $4E90;
  106.     {$ENDC}
  107.  
  108. TYPE
  109.     ListRec = RECORD
  110.         rView:                    Rect;
  111.         port:                    GrafPtr;
  112.         indent:                    Point;
  113.         cellSize:                Point;
  114.         visible:                Rect;
  115.         vScroll:                ControlHandle;
  116.         hScroll:                ControlHandle;
  117.         selFlags:                SInt8;
  118.         lActive:                BOOLEAN;
  119.         lReserved:                SInt8;
  120.         listFlags:                SInt8;
  121.         clikTime:                LONGINT;
  122.         clikLoc:                Point;
  123.         mouseLoc:                Point;
  124.         lClickLoop:                ListClickLoopUPP;
  125.         lastClick:                Cell;
  126.         refCon:                    LONGINT;
  127.         listDefProc:            Handle;
  128.         userHandle:                Handle;
  129.         dataBounds:                Rect;
  130.         cells:                    DataHandle;
  131.         maxIndex:                INTEGER;
  132.         cellArray:                ARRAY [0..0] OF INTEGER;
  133.     END;
  134.     ListPtr = ^ListRec;
  135.     ListHandle = ^ListPtr;
  136.  
  137.     ListDefProcPtr = ProcPtr;  { PROCEDURE ListDef(lMessage: INTEGER; lSelect: BOOLEAN; VAR lRect: Rect; lCell: Cell; lDataOffset: INTEGER; lDataLen: INTEGER; lHandle: ListHandle); }
  138.     ListDefUPP = UniversalProcPtr;
  139.  
  140. CONST
  141.     uppListDefProcInfo = $000EBD80; { PROCEDURE (2 byte param, 1 byte param, 4 byte param, 4 byte param, 2 byte param, 2 byte param, 4 byte param); }
  142.  
  143. FUNCTION NewListDefProc(userRoutine: ListDefProcPtr): ListDefUPP;
  144.     {$IFC NOT GENERATINGCFM }
  145.     INLINE $2E9F;
  146.     {$ENDC}
  147.  
  148. PROCEDURE CallListDefProc(lMessage: INTEGER; lSelect: BOOLEAN; VAR lRect: Rect; lCell: Cell; lDataOffset: INTEGER; lDataLen: INTEGER; lHandle: ListHandle; userRoutine: ListDefUPP);
  149.     {$IFC NOT GENERATINGCFM}
  150.     INLINE $205F, $4E90;
  151.     {$ENDC}
  152.  
  153. FUNCTION LNew(rView: Rect; dataBounds: Rect; cSize: Point; theProc: INTEGER; theWindow: WindowPtr; drawIt: BOOLEAN; hasGrow: BOOLEAN; scrollHoriz: BOOLEAN; scrollVert: BOOLEAN): ListHandle;
  154.     {$IFC NOT GENERATINGCFM}
  155.     INLINE $3F3C, $0044, $A9E7;
  156.     {$ENDC}
  157. PROCEDURE LDispose(lHandle: ListHandle);
  158.     {$IFC NOT GENERATINGCFM}
  159.     INLINE $3F3C, $0028, $A9E7;
  160.     {$ENDC}
  161. FUNCTION LAddColumn(count: INTEGER; colNum: INTEGER; lHandle: ListHandle): INTEGER;
  162.     {$IFC NOT GENERATINGCFM}
  163.     INLINE $3F3C, $0004, $A9E7;
  164.     {$ENDC}
  165. FUNCTION LAddRow(count: INTEGER; rowNum: INTEGER; lHandle: ListHandle): INTEGER;
  166.     {$IFC NOT GENERATINGCFM}
  167.     INLINE $3F3C, $0008, $A9E7;
  168.     {$ENDC}
  169. PROCEDURE LDelColumn(count: INTEGER; colNum: INTEGER; lHandle: ListHandle);
  170.     {$IFC NOT GENERATINGCFM}
  171.     INLINE $3F3C, $0020, $A9E7;
  172.     {$ENDC}
  173. PROCEDURE LDelRow(count: INTEGER; rowNum: INTEGER; lHandle: ListHandle);
  174.     {$IFC NOT GENERATINGCFM}
  175.     INLINE $3F3C, $0024, $A9E7;
  176.     {$ENDC}
  177. FUNCTION LGetSelect(next: BOOLEAN; VAR theCell: Cell; lHandle: ListHandle): BOOLEAN;
  178.     {$IFC NOT GENERATINGCFM}
  179.     INLINE $3F3C, $003C, $A9E7;
  180.     {$ENDC}
  181. FUNCTION LLastClick(lHandle: ListHandle): Cell;
  182.     {$IFC NOT GENERATINGCFM}
  183.     INLINE $3F3C, $0040, $A9E7;
  184.     {$ENDC}
  185. FUNCTION LNextCell(hNext: BOOLEAN; vNext: BOOLEAN; VAR theCell: Cell; lHandle: ListHandle): BOOLEAN;
  186.     {$IFC NOT GENERATINGCFM}
  187.     INLINE $3F3C, $0048, $A9E7;
  188.     {$ENDC}
  189. FUNCTION LSearch(dataPtr: UNIV Ptr; dataLen: INTEGER; searchProc: ListSearchUPP; VAR theCell: Cell; lHandle: ListHandle): BOOLEAN;
  190.     {$IFC NOT GENERATINGCFM}
  191.     INLINE $3F3C, $0054, $A9E7;
  192.     {$ENDC}
  193. PROCEDURE LSize(listWidth: INTEGER; listHeight: INTEGER; lHandle: ListHandle);
  194.     {$IFC NOT GENERATINGCFM}
  195.     INLINE $3F3C, $0060, $A9E7;
  196.     {$ENDC}
  197. PROCEDURE LSetDrawingMode(drawIt: BOOLEAN; lHandle: ListHandle);
  198.     {$IFC NOT GENERATINGCFM}
  199.     INLINE $3F3C, $002C, $A9E7;
  200.     {$ENDC}
  201. PROCEDURE LScroll(dCols: INTEGER; dRows: INTEGER; lHandle: ListHandle);
  202.     {$IFC NOT GENERATINGCFM}
  203.     INLINE $3F3C, $0050, $A9E7;
  204.     {$ENDC}
  205. PROCEDURE LAutoScroll(lHandle: ListHandle);
  206.     {$IFC NOT GENERATINGCFM}
  207.     INLINE $3F3C, $0010, $A9E7;
  208.     {$ENDC}
  209. PROCEDURE LUpdate(theRgn: RgnHandle; lHandle: ListHandle);
  210.     {$IFC NOT GENERATINGCFM}
  211.     INLINE $3F3C, $0064, $A9E7;
  212.     {$ENDC}
  213. PROCEDURE LActivate(act: BOOLEAN; lHandle: ListHandle);
  214.     {$IFC NOT GENERATINGCFM}
  215.     INLINE $4267, $A9E7;
  216.     {$ENDC}
  217. PROCEDURE LCellSize(cSize: Point; lHandle: ListHandle);
  218.     {$IFC NOT GENERATINGCFM}
  219.     INLINE $3F3C, $0014, $A9E7;
  220.     {$ENDC}
  221. FUNCTION LClick(pt: Point; modifiers: INTEGER; lHandle: ListHandle): BOOLEAN;
  222.     {$IFC NOT GENERATINGCFM}
  223.     INLINE $3F3C, $0018, $A9E7;
  224.     {$ENDC}
  225. PROCEDURE LAddToCell(dataPtr: UNIV Ptr; dataLen: INTEGER; theCell: Cell; lHandle: ListHandle);
  226.     {$IFC NOT GENERATINGCFM}
  227.     INLINE $3F3C, $000C, $A9E7;
  228.     {$ENDC}
  229. PROCEDURE LClrCell(theCell: Cell; lHandle: ListHandle);
  230.     {$IFC NOT GENERATINGCFM}
  231.     INLINE $3F3C, $001C, $A9E7;
  232.     {$ENDC}
  233. PROCEDURE LGetCell(dataPtr: UNIV Ptr; VAR dataLen: INTEGER; theCell: Cell; lHandle: ListHandle);
  234.     {$IFC NOT GENERATINGCFM}
  235.     INLINE $3F3C, $0038, $A9E7;
  236.     {$ENDC}
  237. PROCEDURE LGetCellDataLocation(VAR offset: INTEGER; VAR len: INTEGER; theCell: Cell; lHandle: ListHandle);
  238.     {$IFC NOT GENERATINGCFM}
  239.     INLINE $3F3C, $0034, $A9E7;
  240.     {$ENDC}
  241. PROCEDURE LRect(VAR cellRect: Rect; theCell: Cell; lHandle: ListHandle);
  242.     {$IFC NOT GENERATINGCFM}
  243.     INLINE $3F3C, $004C, $A9E7;
  244.     {$ENDC}
  245. PROCEDURE LSetCell(dataPtr: UNIV Ptr; dataLen: INTEGER; theCell: Cell; lHandle: ListHandle);
  246.     {$IFC NOT GENERATINGCFM}
  247.     INLINE $3F3C, $0058, $A9E7;
  248.     {$ENDC}
  249. PROCEDURE LSetSelect(setIt: BOOLEAN; theCell: Cell; lHandle: ListHandle);
  250.     {$IFC NOT GENERATINGCFM}
  251.     INLINE $3F3C, $005C, $A9E7;
  252.     {$ENDC}
  253. PROCEDURE LDraw(theCell: Cell; lHandle: ListHandle);
  254.     {$IFC NOT GENERATINGCFM}
  255.     INLINE $3F3C, $0030, $A9E7;
  256.     {$ENDC}
  257. {$IFC OLDROUTINENAMES }
  258. PROCEDURE LDoDraw(drawIt: BOOLEAN; lHandle: ListHandle);
  259.     {$IFC NOT GENERATINGCFM}
  260.     INLINE $3F3C, $002C, $A9E7;
  261.     {$ENDC}
  262. PROCEDURE LFind(VAR offset: INTEGER; VAR len: INTEGER; theCell: Cell; lHandle: ListHandle);
  263.     {$IFC NOT GENERATINGCFM}
  264.     INLINE $3F3C, $0034, $A9E7;
  265.     {$ENDC}
  266. {$ENDC}
  267.  
  268. {$ALIGN RESET}
  269. {$POP}
  270.  
  271. {$SETC UsingIncludes := ListsIncludes}
  272.  
  273. {$ENDC} {__LISTS__}
  274.  
  275. {$IFC NOT UsingIncludes}
  276.  END.
  277. {$ENDC}
  278.